package br.com.ac.fatureweb.model.carga;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import br.com.ac.fatureweb.model.Carga;
import br.com.ac.fatureweb.utilitary.Model;

/**
 * Configuração de cálculo para conta.
 * 
 * @author aldivone
 *
 */
@Entity
@Table(name = "CONFIG_CALCULO")
@SequenceGenerator(name = "SEQ_CONFIG_CALCULO", sequenceName = "SEQ_CONFIG_CALCULO", allocationSize = 1, initialValue = 1)
public class ConfiguracaoCalculo extends Model {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5007546065125809823L;

	@Id
	@GeneratedValue(generator = "SEQ_CONFIG_CALCULO", strategy = GenerationType.SEQUENCE)
	@Column(name = "ID")
	private Long id;

	@Column(name = "PCT_MULTA")
	private Double pctMulta;

	@Column(name = "PCT_JUROS")
	private Double pctJuros;

	// :"0", <- valor mínimo para impressão da conta
	@Column(name = "VAL_MINIMO")
	private Double valMinimo;

	// :"0", <- flag para cobrança do serviço (código 3) conservação de
	// hidrometro - flag = 1 – percentual - flag = 2 – valor fixo
	@Column(name = "FLG_CONSHIDRO")
	private Integer flgConshidro;

	// :"0", <- consumo mínimo para cobrar o serviço
	@Column(name = "CSM_CONSHIDRO")
	private Integer csmConshidro;

	// :"TAXA DE CONSERVAÇÃO0",<- descrição do serviço
	@Column(name = "DES_CONSHIDRO")
	private String desConshidro;

	// :"0",<- valor ou percentual, do valor da água, no serviço a ser cobrado
	@Column(name = "VAL_CONSHIDRO")
	private Double valConshidro;

	// :"0", - flag para cobrança do serviço (código 26) TAXA EXTRA 1 - flag = 1
	// – percentual - flag = 2 – valor fixo
	@Column(name = "FLG_TAXA1")
	private Integer flgTaxa1;

	// :"0",<- consumo mínimo para cobrar o serviço
	@Column(name = "CSM_TAXA1")
	private Long csmTaxa1;

	// :"TAXA EXTRA 1",<- descrição do serviço
	@Column(name = "DES_TAXA1")
	private String desTaxa1;

	// :"0",<- valor ou percentual, do valor da água, no serviço a ser cobrado
	@Column(name = "VAL_TAXA1")
	private Double valTaxa1;

	// :"0",- flag para cobrança do serviço (código 27) TAXA EXTRA 2 - flag = 1
	// – percentual - flag = 2 – valor fixo
	@Column(name = "FLG_TAXA2")
	private Integer flgTaxa2;

	// :"0"<- consumo mínimo para cobrar o serviço
	@Column(name = "CSM_TAXA2")
	private Long csmTaxa2;

	// :"TAXA EXTRA 2",<- descrição do serviço
	@Column(name = "DES_TAXA2")
	private String desTaxa2;

	// :"0",<- valor ou percentual, do valor da água, no serviço a ser cobrado
	@Column(name = "VAL_TAXA2")
	private Double valTaxa2;

	@ManyToOne
	@JoinColumn(name = "ID_CARGA", referencedColumnName = "ID")
	private Carga carga;

	public ConfiguracaoCalculo() {
		super();
	}

	public ConfiguracaoCalculo(Long id, Double pctMulta, Double pctJuros,
			Double valMinimo, Integer flgConshidro, Integer csmConshidro,
			String desConshidro, Double valConshidro, Integer flgTaxa1,
			Long csmTaxa1, String desTaxa1, Double valTaxa1, Integer flgTaxa2,
			Long csmTaxa2, String desTaxa2, Double valTaxa2) {
		super();
		this.id = id;
		this.pctMulta = pctMulta;
		this.pctJuros = pctJuros;
		this.valMinimo = valMinimo;
		this.flgConshidro = flgConshidro;
		this.csmConshidro = csmConshidro;
		this.desConshidro = desConshidro;
		this.valConshidro = valConshidro;
		this.flgTaxa1 = flgTaxa1;
		this.csmTaxa1 = csmTaxa1;
		this.desTaxa1 = desTaxa1;
		this.valTaxa1 = valTaxa1;
		this.flgTaxa2 = flgTaxa2;
		this.csmTaxa2 = csmTaxa2;
		this.desTaxa2 = desTaxa2;
		this.valTaxa2 = valTaxa2;
	}

	public ConfiguracaoCalculo(Long id, Double pctMulta, Double pctJuros,
			Double valMinimo, Integer flgConshidro, Integer csmConshidro,
			String desConshidro, Double valConshidro, Integer flgTaxa1,
			Long csmTaxa1, String desTaxa1, Double valTaxa1, Integer flgTaxa2,
			Long csmTaxa2, String desTaxa2, Double valTaxa2, Carga carga) {
		super();
		this.id = id;
		this.pctMulta = pctMulta;
		this.pctJuros = pctJuros;
		this.valMinimo = valMinimo;
		this.flgConshidro = flgConshidro;
		this.csmConshidro = csmConshidro;
		this.desConshidro = desConshidro;
		this.valConshidro = valConshidro;
		this.flgTaxa1 = flgTaxa1;
		this.csmTaxa1 = csmTaxa1;
		this.desTaxa1 = desTaxa1;
		this.valTaxa1 = valTaxa1;
		this.flgTaxa2 = flgTaxa2;
		this.csmTaxa2 = csmTaxa2;
		this.desTaxa2 = desTaxa2;
		this.valTaxa2 = valTaxa2;
		this.carga = carga;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the pctMulta
	 */
	public Double getPctMulta() {
		return pctMulta;
	}

	/**
	 * @param pctMulta
	 *            the pctMulta to set
	 */
	public void setPctMulta(Double pctMulta) {
		this.pctMulta = pctMulta;
	}

	/**
	 * @return the pctJuros
	 */
	public Double getPctJuros() {
		return pctJuros;
	}

	/**
	 * @param pctJuros
	 *            the pctJuros to set
	 */
	public void setPctJuros(Double pctJuros) {
		this.pctJuros = pctJuros;
	}

	/**
	 * @return the valMinimo
	 */
	public Double getValMinimo() {
		return valMinimo;
	}

	/**
	 * @param valMinimo
	 *            the valMinimo to set
	 */
	public void setValMinimo(Double valMinimo) {
		this.valMinimo = valMinimo;
	}

	/**
	 * @return the flgConshidro
	 */
	public Integer getFlgConshidro() {
		return flgConshidro;
	}

	/**
	 * @param flgConshidro
	 *            the flgConshidro to set
	 */
	public void setFlgConshidro(Integer flgConshidro) {
		this.flgConshidro = flgConshidro;
	}

	/**
	 * @return the csmConshidro
	 */
	public Integer getCsmConshidro() {
		return csmConshidro;
	}

	/**
	 * @param csmConshidro
	 *            the csmConshidro to set
	 */
	public void setCsmConshidro(Integer csmConshidro) {
		this.csmConshidro = csmConshidro;
	}

	/**
	 * @return the desConshidro
	 */
	public String getDesConshidro() {
		return desConshidro;
	}

	/**
	 * @param desConshidro
	 *            the desConshidro to set
	 */
	public void setDesConshidro(String desConshidro) {
		this.desConshidro = desConshidro;
	}

	/**
	 * @return the valConshidro
	 */
	public Double getValConshidro() {
		return valConshidro;
	}

	/**
	 * @param valConshidro
	 *            the valConshidro to set
	 */
	public void setValConshidro(Double valConshidro) {
		this.valConshidro = valConshidro;
	}

	/**
	 * @return the flgTaxa1
	 */
	public Integer getFlgTaxa1() {
		return flgTaxa1;
	}

	/**
	 * @param flgTaxa1
	 *            the flgTaxa1 to set
	 */
	public void setFlgTaxa1(Integer flgTaxa1) {
		this.flgTaxa1 = flgTaxa1;
	}

	/**
	 * @return the csmTaxa1
	 */
	public Long getCsmTaxa1() {
		return csmTaxa1;
	}

	/**
	 * @param csmTaxa1
	 *            the csmTaxa1 to set
	 */
	public void setCsmTaxa1(Long csmTaxa1) {
		this.csmTaxa1 = csmTaxa1;
	}

	/**
	 * @return the desTaxa1
	 */
	public String getDesTaxa1() {
		return desTaxa1;
	}

	/**
	 * @param desTaxa1
	 *            the desTaxa1 to set
	 */
	public void setDesTaxa1(String desTaxa1) {
		this.desTaxa1 = desTaxa1;
	}

	/**
	 * @return the valTaxa1
	 */
	public Double getValTaxa1() {
		return valTaxa1;
	}

	/**
	 * @param valTaxa1
	 *            the valTaxa1 to set
	 */
	public void setValTaxa1(Double valTaxa1) {
		this.valTaxa1 = valTaxa1;
	}

	/**
	 * @return the flgTaxa2
	 */
	public Integer getFlgTaxa2() {
		return flgTaxa2;
	}

	/**
	 * @param flgTaxa2
	 *            the flgTaxa2 to set
	 */
	public void setFlgTaxa2(Integer flgTaxa2) {
		this.flgTaxa2 = flgTaxa2;
	}

	/**
	 * @return the csmTaxa2
	 */
	public Long getCsmTaxa2() {
		return csmTaxa2;
	}

	/**
	 * @param csmTaxa2
	 *            the csmTaxa2 to set
	 */
	public void setCsmTaxa2(Long csmTaxa2) {
		this.csmTaxa2 = csmTaxa2;
	}

	/**
	 * @return the desTaxa2
	 */
	public String getDesTaxa2() {
		return desTaxa2;
	}

	/**
	 * @param desTaxa2
	 *            the desTaxa2 to set
	 */
	public void setDesTaxa2(String desTaxa2) {
		this.desTaxa2 = desTaxa2;
	}

	/**
	 * @return the valTaxa2
	 */
	public Double getValTaxa2() {
		return valTaxa2;
	}

	/**
	 * @param valTaxa2
	 *            the valTaxa2 to set
	 */
	public void setValTaxa2(Double valTaxa2) {
		this.valTaxa2 = valTaxa2;
	}

	/**
	 * @return the carga
	 */
	public Carga getCarga() {
		return carga;
	}

	/**
	 * @param carga
	 *            the carga to set
	 */
	public void setCarga(Carga carga) {
		this.carga = carga;
	}

}
